package com.ruoyi.app.service

import com.ruoyi.ability.CartoonParam
import com.ruoyi.ability.PicToPicParam
import com.ruoyi.ability.TextToPicParam
import com.ruoyi.app.common.Data
import com.ruoyi.app.common.Page
import com.ruoyi.app.common.PageData
import com.ruoyi.app.domain.v3.dto.MyCollectDto
import com.ruoyi.app.domain.v3.dto.MyRecordDto
import com.ruoyi.app.domain.v3.vo.MyRecordVo
import com.ruoyi.app.domain.vo.PicProcessResultVo
import com.ruoyi.back.domain.FunctionSon
import com.ruoyi.back.service.v3.TemplateReportService

interface UserRecordApiService {


    /**
     * 功能尺寸 type: 1.文生图 2.图生图 3.卡通头像
     */
    fun functionResolution(type: Int): Data<List<FunctionSon>>


    /**
     * 文生图
     */
    fun text2pic(textToPicParam: TextToPicParam): Data<Boolean>

    /**
     * 文生图回调
     */
    fun text2picCallback(textToPicParam: TextToPicParam): Boolean


    /**
     * 图生图
     */
    fun pic2pic(picToPicParam: PicToPicParam): Data<PicProcessResultVo>

    /**
     * 图生图回调
     */
    fun pic2picCallback(picToPicParam: PicToPicParam): Boolean

    /**
     * 卡通头像
     */
    fun cartoonPic(cartoonParam: CartoonParam): Data<PicProcessResultVo>


    /**
     * 卡通回调
     */
    fun cartoonPicCallback(cartoonParam: CartoonParam): Boolean

    /**
     * 我的记录列表
     */
    fun myRecordList(myRecordDto: MyRecordDto): Data<PageData<MyRecordVo>>


    /**
     * 批量移除我的记录列表
     */
    fun removeMyRecord(ids: String): Data<Boolean>


    /**
     * 收藏作品
     */
    fun collectRecord(id: Int): Data<Boolean>


    /**
     * 点赞作品
     */
    fun likeRecord(id: Int): Data<Boolean>

    /**
     * 举报作品
     */
    fun reportRecord(recordReportDto: TemplateReportService.RecordReportDto): Data<Boolean>


    /**
     * 获取作品点赞个数
     */
    fun likeNum(id: Int): Long


    /**
     * 获取我的收藏列表
     */
    fun myCollect(myCollectDto: MyCollectDto): Data<PageData<MyRecordVo>>

    /**
     * 推荐作品
     */
    fun recommendMyRecord(id: Int): Data<Boolean>
}